package com.hca.training.zk.javabasic.Thread.SellTickat3_synchronized2;

/**
 synchronized写在方法上：锁对象没写  synchronized(对象){ 需要保护的内容}其实是传成了this
a:同步代码块的对象是谁呢？
     任意对象
 b:同步方法的格式及对象问题？
      把同步关键字放在方法上
 c:如果放在方法上对象是谁呢？
          this
 d:静态方法及对象的问题？
    静态方法的锁对象是谁呢？
         类的字节码文件SellTicketDemoImpelRunnable.Class
 */

public class SellTicketDemoImpelRunnable implements Runnable {
    private static int tickets=100;
    public void run() {
        while (true)
        {
            mains();
            }
        }
public  static synchronized void mains() {
//  类型于  synchronized(SellTicketDemoImpelRunnable.class){}
        if (tickets > 0) {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //开始售票
            System.out.println(Thread.currentThread().getName() + "正在出售第  " + (tickets--) + "  张票");
        } else {
            return;
        }
    }
}